Computer systems are often used to determine the tax consequences of a commercial transaction. Specifically, they are often used to make a tax determination, which involves a determination as to whether the commercial transaction resulted in a taxable event, and if so, what type of taxable event has resulted and to what taxing authority is a tax owed. In addition, computer systems are often used to perform the calculation of the amount of taxes that are owed.
There are many different types of transaction taxes and many different taxing authorities. It is desirable in some cases to have tax determination application software capable of handling tax determinations for a variety of different transaction taxes and a variety of different taxing authorities. To do this, a tax determination application software module may be designed so that it can be called from different applications that handle different types of commercial transactions.
The desirability of having tax determination application software being capable of handling many different transaction taxes is important from the perspective of an end user who conducts a wide variety of different commercial transactions that give rise to the different taxes. This capability is also important from the perspective of a software vendor who wants to make available for customers a high degree of pre-configured tax determination capability, even though any one customer may only use the software to handle a limited number transaction taxes.
One challenge in designing tax determination application software having broad functionality in terms of the number of different transaction taxes it can handle lies in developing (and perhaps even more importantly, maintaining) the software code that embodies the tax rules for the many different tax determinations. This is because tax rules are complicated and often change. A tax expert may be needed to design, develop and maintain the software that implements the tax rules, but in many cases tax experts do not have much experience in coding software.